This invention relates generally to systems and methods for short range wireless data transfers. Such systems and methods enable new classes of low cost, low energy accessories that have the ability to get firmware updates, or other data transfers while still complying with Bluetooth low energy (BLE) standards.
Bluetooth low energy is an international open standard for low power short range wireless communication. BLE enables low power devices that have extended battery life, and are thus ideally suited for small accessories where power availability is at a premium, such as wireless watches, proximity key fobs, fitness sensors, etc.
However, current Bluetooth low energy protocols do not have the needed ability to perform extended data transfers, and particularly do not have functionality to perform firmware upgrades. Instead, they were designed for reading and writing small, discrete data values. For very basic accessory devices, this is not of concern since the firmware tends to remain static; however, as accessory products become more complex, the embedded firmware correspondingly becomes more complex. With this increase in firmware complexity, the chance that updates are needed multiplies. This is particularly true when the accessory communicates with a mobile device, such as a tablet or cell phone, where the operating system version changes on a near continual basis, and thereby potentially impacting device to accessory interoperability.
In addition to data transfer needs for bulk, continuous transfers, and firmware updating, BLE accessory devices often have other communication protocol needs that require special solutions to improve performance and interoperability. Many accessories need special “device control” features. Examples of device control features: configuring connection parameters, setting the connection security level, or disconnecting a connection.
Although these three device control examples given above could be performed with standard procedures defined by the Bluetooth specification, there is still a need for special solutions defined at the application level. This is because mobile phone operating systems often limit the access apps have to these standard device control procedures. For example, iOS does not allow an app to set the security level of a connection.
Moreover, the Bluetooth specification defines the standard protocols and procedures for establishing a secure connection between two BLE devices. In a secure connection the data transferred between BLE radios is encrypted. Two devices are considered to be “bonded” when they have established and stored an encryption key used for secure communication.
Although this standard bonding security procedure is beneficial, it also has drawbacks. The process of bonding requires user interaction; the mobile phone OS will generally prompt the phone user with a popup message asking if it is ok to bond. If an accessory is used with multiple phones the accessory must bond separately with each phone, and bonding information must be stored in non-volatile memory for each bonded phone. An accessory also needs the ability to delete a bond; however since most accessory devices lack sophisticated user interfaces it may be impossible to select and delete the bond for a particular phone. Clearly there is a need for a more sophisticated application level authentication and encryption protocols.
It is therefore apparent that an urgent need exists for systems and methods short range wireless data transfers which comport to Bluetooth low energy standards to enable the bulk or streaming transfer of data to an accessory, firmware updates, authentication and encryption on the application level, and special control protocols. Such systems and methods enable firmware updates and other data transfers to classes of devices that currently do not have this level of functionality. This enables BLE accessories to continue their interoperability even when the device they are in communication with devices that have changed their operating system.